package com.ys.字符串作业题;

/**
 * 描述: 模拟trim方法的实现忽略str前后空格
 * "  123  "
 * 获得 123 使用 str.substring();截取字符
 * 1;获得1 的索引位置 ---> 判断非空字符出现,也可以是判断空字符词素
 * 2;获得3 的索引位置
 *
 * @author CodeYang
 * @version 2020/12/22 9:52
 */
public class 模拟trim方法的实现忽略str前后空格 {
    public static void main(String[] args) {
        String str = "   123  ";
        System.out.println("aa" + trim(str) + "aa");
    }

    /**
     * 模拟实现 trim
     * 游标思想: 开始与结束 的范围
     *
     * @param str
     * @return
     */
    static String trim(String str) {
        int start = 0, end = str.length() -1 ;
        // str.charAt(start) 0123 len=4 但是 charAt(4) 下角标越界
        // 正向遍历空格次数
        while (start <= end && str.charAt(start) == ' ') {
            start++;
        }
        //反向遍历空格次数
        while (start <= end &&str.charAt(end) == ' ') {
            end--;
        }
        // [start,end]  substring 取不到end 所以+1
        return str.substring(start, end+1);
    }
}
